﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;

namespace MissingLinq.Linq2Management.Test.Context
{
	internal class MockQueryable<T> : IQueryable<T>
	{
		public MockQueryable(MockQueryProvider provider = null, Expression expression = null)
		{
			Provider = provider ?? new MockQueryProvider();
			Expression = expression ?? Expression.Constant(this);
		}

		#region IEnumerable<T> Members

		public IEnumerator<T> GetEnumerator()
		{
			throw new NotImplementedException();
		}

		#endregion

		#region IEnumerable Members

		System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
		{
			throw new NotImplementedException();
		}

		#endregion

		#region IQueryable Members

		public Type ElementType
		{
			get { throw new NotImplementedException(); }
		}

		public Expression Expression { get; private set; }

		public IQueryProvider Provider { get; private set; }

		#endregion
	}
}
